if have_systemd
unitconf = configuration_data()
unitconf.set('bindir', bindir)
- supported_sessions = ['wayland']
-
configure_file(
- input: 'org.gnome.Shell@wayland.service.in',
- output: 'org.gnome.Shell@wayland.service',
+ input: 'org.gnome.Shell@.service.in',
+ output: 'org.gnome.Shell@.service',
configuration: unitconf,
install_dir: systemduserunitdir
)
-
- units = files('org.gnome.Shell-disable-extensions.service')
- targetconf = configuration_data()
- sessions_wants = []
- foreach session: supported_sessions
- sessions_wants += 'org.gnome.Shell@' + session + '.service'
- endforeach
- targetconf.set('SUPPORTED_SESSIONS', ' '.join(sessions_wants))
- target = configure_file(
- input: 'org.gnome.Shell.target.in',
- output: 'org.gnome.Shell.target',
- configuration: targetconf
+ install_data (
+ 'org.gnome.Shell-disable-extensions.service',
+ install_dir: systemduserunitdir,
)
- units += target
-
- install_data(units, install_dir: systemduserunitdir)
endif
# for unit tests - gnome.compile_schemas() only looks in srcdir
+++ /dev/null
-[Unit]
-Description=GNOME Shell
-DefaultDependencies=no
-
-Requisite=gnome-session-initialized.target
-PartOf=gnome-session-initialized.target
-Before=gnome-session-initialized.target
-
-Wants=@SUPPORTED_SESSIONS@
\ No newline at end of file
--- /dev/null
+[Unit]
+Description=GNOME Shell
+OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-shutdown.target
+OnFailureJobMode=replace-irreversibly
+CollectMode=inactive-or-failed
+RefuseManualStart=on
+RefuseManualStop=on
+
+After=gnome-session-manager.target
+
+Requisite=gnome-session-initialized.target
+PartOf=gnome-session-initialized.target
+Before=gnome-session-initialized.target
+
+AssertEnvironment=XDG_SESSION_TYPE=wayland
+
+[Service]
+Slice=session.slice
+Type=notify
+ExecStart=@bindir@/gnome-shell --mode=%i
+# Exit code 1 means we are probably *not* dealing with an extension failure
+SuccessExitStatus=1
+
+# unset some environment variables that were set by the shell and won't work now that the shell is gone
+ExecStopPost=-systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY
+
+# On wayland we cannot restart
+Restart=no
+# Kill any stubborn child processes after this long
+TimeoutStopSec=5
+
+# Lower down gnome-shell's OOM score to avoid being killed by OOM-killer too early
+OOMScoreAdjust=-1000
+++ /dev/null
-[Unit]
-Description=GNOME Shell on Wayland
-# On wayland, force a session shutdown
-OnFailure=org.gnome.Shell-disable-extensions.service gnome-session-shutdown.target
-OnFailureJobMode=replace-irreversibly
-CollectMode=inactive-or-failed
-RefuseManualStart=on
-RefuseManualStop=on
-
-After=gnome-session-manager.target
-
-Requisite=gnome-session-initialized.target
-PartOf=gnome-session-initialized.target
-Before=gnome-session-initialized.target
-
-ConditionEnvironment=XDG_SESSION_TYPE=%I
-
-[Service]
-Slice=session.slice
-Type=notify
-ExecStart=@bindir@/gnome-shell
-# Exit code 1 means we are probably *not* dealing with an extension failure
-SuccessExitStatus=1
-
-# unset some environment variables that were set by the shell and won't work now that the shell is gone
-ExecStopPost=-/bin/sh -c 'test "$SERVICE_RESULT" != "exec-condition" && systemctl --user unset-environment GNOME_SETUP_DISPLAY WAYLAND_DISPLAY DISPLAY XAUTHORITY'
-
-# On wayland we cannot restart
-Restart=no
-# Kill any stubborn child processes after this long
-TimeoutStopSec=5
-
-# Lower down gnome-shell's OOM score to avoid being killed by OOM-killer too early
-OOMScoreAdjust=-1000